MUDDR Curriculum

The MUDDR curriculum is all meat and no vegetables — like a four year computer science degree with technical content only.

The MUDDR curriculum consists of eight core computer science courses plus four electives. The core courses develop students' basic programming abilities — topics that often arise in technical interviews. The electives hone students' programming abilities and teach advanced topics that students need to excel in the workforce.

Core Computer Science Courses

MUDDR requires students to take all of the core courses below.

Required

Programming 1

Learn the basics of writin short (200-500) line programs in C++. Practice the edit-compile-run cycle of software development. Learn the basics of make to automatically compile your program. Learn to use git for revision control.

Required

Programming 2

Introduction to using object oriented programming (classes and objects) to solve more complex problems. Organizing data using arrays, linked lists, stacks, and queues. Develop programs that consist of multiple source files. Build programs that read and write data to files.

Required

Programming 3

This course introduces balanced search trees, graphs, and hash tables. Students design and implement medium-sized programs programs using high quality professional code.

Required

Calculus 1

Course prerequisites: Algebra skills for manipulating polynomials and functions, trigonometry skills including elementary functions in radian measure and knowledge of trigonometric identities and formulas.
  • Functions and graphing
  • Limits, intuitively and with an idea of how they can be formalized, including limits at infinity and infinite limits and l'Hopital's rule
  • Derivatives of first and higher order, differentiation formulas, rates of change, the chain rule and implicit differentiation, related rates and differentials, Newton's method
  • Inverse functions, exponential and logarithmic functions, inverse trigonometric functions, hyperbolic functions, and applications of these functions
  • Geometric implications of the first and second derivative and applications to finding extrema
  • Antiderivatives, summation and the definite integral, the Fundamental Theorem of Calculus, and substitution in integration
Required

Calculus 2

Prerequisites: Calculus 1
  • Techniques of integration: Integration by parts, trigonometric integrals, trigonometric substitutions, partial fraction decompositions, and numerical techniques
  • Applications of integration to arc length, moments and center of mass, pressure and force, and solving differential equations
  • The calculus of parametric curves
  • Polar coordinates, and finding areas and lengths in polar coordinates
  • Conic sections in rectangular coordinates
  • Definitions and relations between infinite sequences and series
  • Convergence tests for series
  • Power series and radius of convergence
  • Taylor and Maclaurin series
  • Applications and error bounds for Taylor approximations
  • Coordinates and vectors in 3-space
  • Dot and cross products, and applications to equations for lines and planes
Required

Probability & Statistics for Computer Science

  • Sample spaces, outcomes, events
  • Axioms & properties of probability
  • Random variables
  • Law of total probability
  • Expectation
  • Cumulative distribution functions
  • Bayes rule, conditional probability & conditional expectation
  • Convergence in distribution & normal distribution theory
  • Markov chains
Required

Linear Algebra

  • Linear systems & matrices
  • Matrix operations, including matrix multiplication and inversion
  • Vector spaces and linear transformation
  • Matrix factorizations
Required

Machine Organization

Discussion of computer memory, fetch-decode-execute cycle of instruction execution. Assembly language programming. C programming.

Electives

MUDDR requires students to take at least four elective courses from the list below.

Elective

Machine Learning

Matrix operations, factoring

Elective

Compilers

  • Context-free grammars
  • Syntax-directed translation
  • Parsing and lexing
  • Code generation & Intermediate representation
  • Optimization
Elective

Operating Systems

  • Boot process
  • Input/output
  • Interrupts
  • Memory management
  • File systems
  • Processes & Scheduling
Elective

Security

Matrix operations, factoring

Elective

Networking

Matrix operations, factoring